package conceptmaniax.hotelapp.enums;

import java.util.HashMap;
import java.util.Map;

import android.annotation.SuppressLint;

public enum ActionType {
	ACCOMODATION("accomodation", "ACCOMMODATION", "Accommodation", "ΔΙΑΜΟΝΗ", "Διαμονή", "UNTERKUNFT", "Unterkunft"),
	HOTELS("hotel", "HOTELS","Hotels", "ΞΕΝΟΔΟΧΕΙΑ", "Ξενοδοχεία", "HOTELS","Hotels"),
	HOSTELS("hostel","HOSTELS","Hostels", "ΞΕΝΩΝΕΣ", "Ξενώνες", "HOSTELS","Hostels"),
	
	FOOD("food", "FOOD", "Food", "ΦΑΓΗΤΟ", "Φαγητό", "ESSEN", "Essen"), 
	GREEK("greekfood","GREEK CUSINE", "Greek Cusine", "ΕΛΛΗΝΙΚΗ ΚΟΥΖΙΝΑ", "Ελληνική Κουζίνα", "GRIECHISCHE KÜCHE", "Griechische Küche"), 
	ITALIAN("italianfood","ITALIAN CUSINE", "Italian Cusine", "ΙΤΑΛΙΚΗ ΚΟΥΖΙΝΑ", "Ιταλική Κουζίνα", "", ""), 
	CAFEBAR("cafebar","CAFE-BAR-RESTAURANT", "Cafe-Bar-Restaurant", "ΚΑΦΕΣ-ΜΠΑΡ-ΕΣΤΙΑΤΟΡΙΟ", "Καφές-Μπαρ-Εστιατόριο", "CAFE-BAR-RESTAURANT", "Cafe-Bar-Restaurant"),
	FASTFOOD("fastfood", "FAST FOOD", "Fast Food", "FAST FOOD", "Fast Food", "FAST FOOD", "Fast Food"), 
	
	CAFE("cafe", "COFFEE, PASTRY", "Coffee, Pastry", "ΚΑΦΕΣ, ΓΛΥΚΟ", "Καφές, Γλυκό", "KAFFEE, KONDITOREI", "Kaffee, Konditorei"),  
	CAFE_FOOD("coffeefood", "COFFEE, FOOD", "Coffee, Food", "ΚΑΦΕΣ, ΦΑΓΗΤΟ", "Καφές, Φαγητό", "KAFFEE, ESSEN", "Kaffee, Essen"), 
	CAFE_DRINK("coffeedrink", "COFFEE, DRINK", "Coffee, Drink", "ΚΑΦΕΣ, ΠΟΤΟ", "Καφές, Ποτό", "KAFFEE, GETRÄNK", "Kaffee, Getränk"), 
	CAFE_SWEET("coffeesweet", "COFFEE, SWEETS", "Coffee, Sweets", "ΚΑΦΕΣ, ΓΛΥΚΟ", "Καφές, Γλυκό", "KAFFEE, KONDITOREI", "Kaffee, Konditorei"), 
		
	ENTERTAIMENT("entertainment", "NIGHTLIFE", "Night Life", "ΔΙΑΣΚΕΔΑΣΗ", "Διασκέδαση", "UNTERHALTUNG", "Unterhaltung"),
	
	RENT_RIDE("rent_a_ride", "RENT A CAR-BIKE\nGARAGE",	"Rentals – Garage", "ΕΝΟΙΚΙΑΣΗ AUTO-MOTO\nΣΥΝΕΡΓΕΙΑ", "Ενοικιάσεις – Συνεργεία", "FAHRZEUGVERMIETUNG\nTRANSPORTIEREN", "Fahrzeugvermietung, Transportieren"),
	RENTALS("rentals", "RENTALS", "Rentals", "ΕΝΟΙΚΙΑΣΕΙΣ", "Ενοικιάσεις", "", ""),
	GARAGE("garage", "GARAGE", "Garage", "ΣΥΝΕΡΓΕΙΑ", "Συνεργεία", "", ""),
	
	VILLAGES("villages", "VILLAGES", "Villages", "ΧΩΡΙΑ", "Χωριά", "DÖRFER", "Dörfer"), 
	
	SHOP("shop","SHOPS\nSERVICES", "Shops Services", "ΚΑΤΑΣΤΗΜΑΤΑ\nΥΠΗΡΕΣΙΕΣ", "Καταστήματα, Υπηρεσίες", "GESCHÄFTE BEHÖRDEN", "Geschäfte Behörden"), 
	TRAVEL("travel","TRAVEL AGENCIES", "Travel Agencies", "ΤΑΞΙΔΙΩΤΙΚΑ ΓΡΑΦΕΙΑ", "Ταξιδιωτικά Γραφεία", "REISEBÜROS", "Reisebüros"), 
	ACTIVITY("activity","ACTIVITIES", "Activities", "ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ", "Δραστηριότητες", "AKTIVITÄTEN",	"Aktivitäten"),
	SIGHT("sight","SIGHTS", "Sights", "ΑΞΙΟΘΕΑΤΑ", "Αξιοθέατα", "SEHENSWÜRDIGKEITEN", "Sehenswürdigkeiten"), 
	GUIDE("guide","TRAVEL GUIDE", "Travel Guide", "ΤΑΞΙΔΙΩΤΙΚΟΣ\nΟΔΗΓΟΣ", "Ταξιδιωτικός Οδηγός", "GESCHÄFTE BEHÖRDEN", "Geschäfte Behörden"),
	BEACHES("beach","BEACHES", "Beaches", "ΠΑΡΑΛΙΕΣ", "Παραλίες", "STRÄNDE", "Strände"),
	OFFERS("offers", "SPECIAL OFFERS", "Special Offers", "ΠΡΟΣΦΟΡΕΣ", "Προσφορές", "SPECIAL OFFERS", "Special Offers"),
	 
	INFORMATION("information", "USEFUL INFO\nSETTINGS", "Useful Info, Settings", "ΧΡΗΣΙΜΑ\nΡΥΘΜΙΣΕΙΣ", "Χρήσιμα, Ρυθμίσεις", "NÜTZLICHES", "Nützliches"), 
	USEFULL_PHONES("usefulnumber", "USEFULL PHONE NUMBERS", "Usefull Phone Numbers", "ΧΡΗΣΙΜΑ ΤΗΛΕΦΩΝΑ", "Χρήσιμα Τηλέφωνα", "NÜTZLICHE TELEFONNUMMERN","Nützliche Telefonnummern"), 
	TRANSPORTATION("transportation", "TRANSPORTATION", "Transportation", "ΜΕΤΑΦΟΡΕΣ", "Μεταφορές", "TRANSPORTIEREN","Transportieren"),
	WEATHER("weather", "Weather Forecast", "Weather Forecast", "ΚΑΙΡΟΣ", "Καιρός", "WETTERVORHERSAGE","Wettervorhersage"),
	DRUG_STORES("drugstores", "DRUG STORES", "Drug Stores", "ΦΑΡΜΑΚΕΙΑ", "Φαρμακεία", "APOTHEKE","Apotheke"),
	MORE_APPS("moreapps", "MORE APPS", "More Apps", "ΠΕΡΙΣΣΟΤΕΡΕΣ ΕΦΑΡΜΟΓΕΣ", "Περισσότερες Εφαρμογές", "", ""),
	ABOUT_US("aboutus", "ABOUT US", "About us", "ΓΙΑ ΕΜΑΣ", "Για Εμάς", "ÜBER UNS", "Über uns"),
	LANGUAGE("language","SELECT LANGUAGE","Select Language","ΕΠΙΛΟΓΗ ΓΛΩΣΣΑΣ","Επιλογή Γλώσσας","SPRACHWAHL","Sprachwahl"),
	;

	private final String code;
	public final String capitalEN;
	public final String lowercaseEN;
	public final String capitalGR;
	public final String lowercaseGR;
	public final String capitalHIS;
	public final String lowercaseHIS;
	private static final Map<String, ActionType> INSTANCES_MAP = new HashMap<String, ActionType>(30);
	
	private ActionType(String code, String capitalEN, String lowercaseEN,
			String capitalGR, String lowercaseGR, String capitalHIS,
			String lowercaseHIS) {
		this.code = code;
		this.capitalEN = capitalEN;
		this.lowercaseEN = lowercaseEN;
		this.capitalGR = capitalGR;
		this.lowercaseGR = lowercaseGR;
		this.capitalHIS = capitalHIS;
		this.lowercaseHIS = lowercaseHIS;
	}

	static {
		for (ActionType at : ActionType.values()) {
			INSTANCES_MAP.put(at.code, at);
		}
	}

	public String getCode() {
		return code;
	}

	public String getCapitalEN() {
		return capitalEN;
	}

	public String getLowercaseEN() {
		return lowercaseEN;
	}

	public String getCapitalGR() {
		return capitalGR;
	}

	public String getLowercaseGR() {
		return lowercaseGR;
	}
	
	public String getCapitalHIS() {
		return capitalHIS;
	}

	public String getLowercaseHIS() {
		return lowercaseHIS;
	}

	@SuppressLint("DefaultLocale")
	public static ActionType getForType(final String code) {
		if (code == null) {
			return null;
		}
		
		return INSTANCES_MAP.get(code.toLowerCase()) != null ? INSTANCES_MAP.get(code.toLowerCase()) : null;
	}
}
